package serveur;

import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;

import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;

/**
 * Serveur version multithread, cree un thread de type ThreadDialogue a chaque connexion afin
 * de traiter les requetes des clients qui se connectent.
 * 
 * @author Erik & Lucas
 */
public class ServeurMulithread {
	private final static Logger logger = Logger.getLogger(ServeurMulithread.class);
	private static ServerSocket serveurSocket;

	public static void main(String[] args) {
		try {
			PropertyConfigurator.configure("log4j.properties");
			serveurSocket = new ServerSocket(2009);
			logger.info("Lancement du serveur sur le port 2009");
			System.out.println("Serveur lance sur le port: 2009, en attente de connexion d'un client");
			while (true) {
				System.out.println("En attente d'une connexion...");
				logger.info("Serveur en attente de connexion d'un client");
				Socket socket = serveurSocket.accept();
				logger.info("Connexion d'un client : " + socket.getInetAddress() + " avec le port : " + socket.getPort());

				Thread threadDialogue = new Thread(new ThreadDialogue(socket));
				threadDialogue.start();
				System.out.println("Connexion TCP etablie");

			}
		} catch (IOException e) {
			e.printStackTrace();
		}

	}
}
